home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2003 #12 / Amiga Plus CD - 2003 - No. 12.iso / AmigaPlus / Scene / Magazine / Saxonia2 / articles / 048 < prev    next >
Text File  |  2002-05-11  |  8KB  |  152 lines

  1. Bootblocks and trackloaders
  2. By Rumrunner/VOID
  3. [l
  4.  
  5. I have always enjoyed trackloaded productions as well as different
  6. bootblocks, like utility boots. I still watch a lot of trackmos, not
  7. only because of the lack of new productions to watch, but also because
  8. they impress me in a way that's hard for a filedemo to do.
  9.  
  10. If we go back in time, the utility boot became quite popular. It offered
  11. some useful functions, like turning extramemory on and off, switching on
  12. and off extra diskdrives and so on. Most of them also checked the state
  13. of coolcapture and coldcapture vector and told if there was any
  14. possibility of a virus being present. Thereby, having a utility boot on
  15. your workdisk could save you from hours of boring recovery work after the
  16. nasty actions of a virus. Since most people didn't use a harddrive, who
  17. bothered to load in the usual viruschecker when you were to boot off
  18. another disk with another utility ten minutes later? I know for sure I
  19. never did.
  20.  
  21. When we take a look at the demos from the early 1990's most of them were
  22. trackloaded. Among the first trackloaded demos (and other productions)
  23. were of course the megademos. One of my favourites is the first Phenomena
  24. megademo where Mr Gurk blits 200 bobs on screen in oneframe in one of the
  25. parts. Also enjoyable is the musicdisks from Burning Independence. And
  26. ofcourse there are a whole lot of other interesting products.
  27.  
  28. Most of these mentioned above is perhaps not regarded as real trackloaded
  29. productions, because many of them doesn't use ownwritten trackloaders.
  30. For some time, it was common to keep the exec intact and use the
  31. trackdisk.device to load tracks from disk. So there are examples where
  32. megademos store needed information, like the state of the intena, dmacon
  33. and such before taking over the system in each part. When you exit that
  34. part and the demo loads the next one, enough of the system is left open
  35. that the trackdisk.device does it's work.
  36.  
  37. People soon found out the advantages of using trackloaders, among the
  38. most important is more available memory. This was in the days where
  39. coders wanted to push the computer to the limits, and releasing a demo
  40. that worked on 512k was better than releasing one needing fast. However,
  41. using the trackdisk.device, you are not free to use memory every way you
  42. like, as you have to keep the parts of memory that concerns
  43. trackdisk.device and exec intact. So soon the first real trackloaders
  44. appeared. They either took over the system right from the bootblock, or
  45. loaded a couple of tracks to memory, then jumped into this code, taking
  46. over the system and relocating the code (for instance the loader) to
  47. whatever parts of memory. This took more work than using trackdisk, as
  48. you had to set up such as stacks yourself. You also had to remember
  49. where in memory you had different parts, if you didn't put everything
  50. you needed in one block, in that case, it was easy to use branches and
  51. you didn't have to resort to jsr's. Anyway, if you take a look at the
  52. code in most trackmos, you will find that several routines is called
  53. by a jsr to the right place. Even if you had to keep track of these
  54. adresses, there were some advantages to working this way. For instance,
  55. if there was one module played during several effects, you could simply
  56. jump to the same player adress in each part, you didn't have to worry
  57. about changing it in the interrupt. If you played music from one
  58. interrupt, let's say the level 6 one, you could simply leave it there
  59. all of the time, and run all effects from different level 3 interrupts,
  60. whereas if you had the module in the same block as the code for one
  61. effect, you had to take precautions when loading the next effect and
  62. the data for it.
  63.  
  64. Let's now take a little break and remember some remarkably good
  65. trackloaded and trackdisk loaded productions :[1 
  66.  
  67. - Multica demo by Andromeda
  68. - Global Trash demo by Silents
  69. - Hardwired demo by TSL and Crionics
  70. - Seven Seas slideshow by Andromeda
  71. - Stolen Data diskmag by Anarchy (issues 6 and 7 with one code and
  72.                                   issues 9 and 10 with another)
  73. - Desert Dream demo by Kefrens
  74. - Dane demo by Kefrens
  75. - and many more[0 
  76.  
  77. Then, about 1994 something happened. More and more people started to buy
  78. harddrives and also the Amiga 1200 come strongly into the scene. People
  79. started to see the advantages fileloaded productions have and wanted
  80. more of them. Also there were some badly written trackloaders that messed
  81. up on faster computers, mostly due to processor timing like [2 
  82.  
  83.     moveq    #-1,d0
  84. wait:
  85.     dbf    d0,wait[0 
  86.  
  87. which works good as long as everybody has the same processor, but with
  88. faster processors, even with cache, the wait simply becomes too small.
  89. Those loaders using either rastertiming or CIA timing works well though.
  90. I would say that old demos are more likely to run if they are trackloaded
  91. then the case is if they are filedemos. Try for instance to watch the
  92. old classic [1 Hunt for seventh October[0  by [2 Tec/Cryptoburners[0  on an Amiga
  93. 1200. I have never been able to get it to work, no effects are shown on
  94. screen. The music plays well though. Then, try to load a trackloaded demo.
  95. Most of the time, if works, if not completely they way it was supposed to.
  96. I have noticed some demos which have trouble with the timing in other
  97. parts than the loader, such as music speed and the most strange bug I
  98. have seen must be the one I found in Global Trash. If you take a closer
  99. look at the vector disk on screen, first at an Amiga 500 and then on an
  100. Amiga 1200, there's a difference. Have you found out what? IT's the
  101. metallic slide covering the readarea on the disk. It opens when run on
  102. Amiga 500, when run on Amiga 1200 it doesn't for some reason or another.
  103.  
  104. So, like said, the trackloaders started to fade away. The last ones I
  105. know of is some demos from The Electronic Knights made some time around
  106. 1998.
  107.  
  108. Now, will trackloaders and bootblocks be gone forever. No, although they
  109. will perhaps not make an appearance again until I finish my routines.
  110. That's right, some time ago, I found a document explaining the adresses
  111. used for steeping disks and selecting side and such, so I started to make
  112. a trackloader. So far, it steps well but there's a little problem with
  113. the reading which I haven't sorted out yet. When it all works, I hope
  114. to be able to put the whole loader on bootblock, thus saving the work
  115. of loading it in and then relocate it to an appropriate adress.
  116.  
  117. Also I have started to take a look at bootblocks, after I found out the
  118. structure of it. I guess all those who are interested knows it, but here
  119. it is anyway :[2 
  120.  
  121.     dc.b    "DOS",0
  122.     dc.l    0        ;this is used for checksum
  123.     dc.l    370        ;this is the rootblock which tells the
  124.                 ;os where to find the filesystem, block
  125.                 ;370 is track 40
  126.  
  127.     ...    ;rest of code [0 
  128.  
  129. Now, what the standard bootblock does is simply to do a loadresident to
  130. find dos.library, put the adress in a structure and exit if it finds
  131. dos.library. Upon exiting the bootblock, the computer will load the
  132. CLI which we all know. If there's no dos.library, the bootblock will
  133. exit with a returncode telling about the error, however I don't know
  134. how you should be able to not find dos.library, as it is located in ROM.
  135. The only explanation I can think of must be if you use a kickstart
  136. remapper for instance to get kickstart 3.1 on a system which has kickstart
  137. 3.0 chips installed. I never bother to check if it has found dos.library
  138. (or graphics.library for that matter) in any of my programs.
  139.  
  140. So, I have a lot of work left to do, but expect to see some trackloaded
  141. stuff in the future, I work on a piece of code intended for a musicdisk,
  142. and perhaps I will decide to trackload this. Then, we'll see if people
  143. still bother to put a disk in the drive and reset the computer.
  144.  
  145. I think that it's a pity that most parties only allows contributions to
  146. competitions in archive formats such as LHA, this means that trackloaders
  147. are not allowed. I don't know if this is because of lazyness from the
  148. organiser's side or whatever else it could be, but I don't like it.
  149. Trackloaders are a feature of the Amiga and should as such be allowed
  150. in Amigademo competitions.
  151.